﻿// 源文件头信息：
// <copyright file="Entity.cs">
// Copyright(c)2012-2019.
// CLR版本：4.0.30319.239
// 开发组织：luochengbang@163.com
// 公司网站：
// 所属工程：Janus.Cores.Repository.Tools
// 最后修改：Ben.Luo
// 最后修改：2013/05/14 23:04
// </copyright>

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Data;
using System.Linq;
using System.Text;


namespace Janus.BaseEntitys
{
    /// <summary>
    ///     可持久到数据库的领域模型的基类。
    /// </summary>
    [Serializable]
    public abstract class Entity
    {
        #region 构造函数

        /// <summary>
        ///     数据实体基类
        /// </summary>
        public Entity()
        {
            CreateDate = UpdateDate = DateTime.Now;
        }

        #endregion

        #region 属性
        public int Id { get; set; }
        /// <summary>
        ///  获取对象的状态
        /// </summary>
        public DataRowState RowState { get; set; }

        /// <summary>
        ///     获取或设置 添加时间
        /// </summary>
        [DataType(DataType.DateTime)]
        public DateTime CreateDate { get; set; }

        /// <summary>
        /// 创建人
        /// </summary>
        public string Creator { get; set; }

        /// <summary>
        /// 创建人编码
        /// </summary>
        public string CreatorCode { get; set; }

        [DataType(DataType.DateTime)]
        public DateTime UpdateDate { get; set; }

        public string Updater { get; set; }

        public string UpdaterCode { get; set; }

        /// <summary>
        ///     获取或设置 版本控制标识，用于处理并发
        /// </summary>
        [ConcurrencyCheck]
        [Timestamp]
        public byte[] Timestamp { get; set; }

        public bool IsReload { get; set; }
        #endregion
    }
}